package com.farmpost.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.farmpost.server.controller.entity.ResetPassWord;
import com.farmpost.server.pojo.RespBean;
import com.farmpost.server.pojo.UserInfo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

/**
 * <p>
 * 用户基本信息 服务类
 * </p>
 *
 * @author king
 * @since 2022-04-03
 */
public interface IUserInfoService extends IService<UserInfo> {

    /**
     * 登录之后返回token
     * @param username
     * @param userPassword
     * @param code
     * @param request
     * @return
     */
    RespBean login(String username, String userPassword, String code, HttpServletRequest request);

    /**
     * 根据用户名获取用户信息
     * @param username
     * @return
     */
    UserInfo getUserInfoByUserName(String username);

    /**
     * 用户进行注册
     * @param username
     * @param userPassword
     * @param code
     * @param request
     * @return
     */
    RespBean registerUser(String username, String userPassword, String code, HttpServletRequest request);

    /**
     * 查询注册时的用户名是否被使用过
     * @param username
     * @return
     */
    UserInfo getUserNameOnRegister(String username);

    /**
     * 修改用户信息
     * @param username
     * @param sex
     * @param age
     * @return
     */
    RespBean updateUserInfo(String username, String sex, int age, String other);

    /**
     * 根据用户id查询用户信息
     * @param userId
     * @return
     */
    UserInfo getUserInfoByUserId(Integer userId);

    /**
     * 用户头像上传
     * @param file
     * @return
     */
    RespBean uploadUserFace(MultipartFile file) throws Exception;

    /**
     * 账号注销
     * @return
     */
    RespBean quitSys();

    /**
     * 修改密码
     * @param resetPassWord
     * @return
     */
    RespBean modifyPassWord(ResetPassWord resetPassWord);
}
